package com.emperor.service.impl;

import com.emperor.dto.SkuClassSaveDto;
import com.emperor.entity.SkuClass;
import com.emperor.mapper.SkuClassMapper;
import com.emperor.service.SkuClassService;
import com.emperor.vo.SkuClassIdVo;
import com.emperor.vo.SkuClassPageVo;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class SkuClassServiceImpl implements SkuClassService {
    @Autowired
    private SkuClassMapper skuClassMapper;

    @Override
    public void save(SkuClassSaveDto dto) {
        skuClassMapper.save(dto);
    }

   @Override
    public SkuClassPageVo findAll(Integer pageIndex, Integer pageSize, String className) {
        // 使用PageHelper分页，每页显示pageSize条数据
        PageHelper.startPage(pageIndex, pageSize);
        // 调用skuClassMapper的findAll方法，查询className类名的数据
        List<SkuClass> all = skuClassMapper.findAll(className);
        // 使用PageHelper分页，获取总页数
        Page<SkuClass> p = (Page<SkuClass>) all;
        // 计算总页数
        long l = (p.getTotal() / pageSize) + 1;
        // 创建SkuClassPageVo对象
        SkuClassPageVo build = SkuClassPageVo.builder().
                pageIndex(pageIndex).
                pageSize(pageSize)
                .totalPage((int) l).totalCount((int) p.getTotal())
                .currentPageRecords(new List[]{p.getResult()}).build();
        // 返回SkuClassPageVo对象
        return build;
    }

    @Override
    public SkuClassIdVo getById(Integer classId) {
        SkuClassIdVo vo=  skuClassMapper.getById(classId);
        return vo;
    }

    @Override
    public void updateById(Integer classId, SkuClassSaveDto dto) {
        skuClassMapper.updateById(classId,dto);
    }

    @Override
    public void deleteById(Integer classId) {
        skuClassMapper.deleteById(classId);
    }
}
